package com.leostadyn.stackfarm.timestatistics.utils;

import android.content.Context;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

import com.leostadyn.stackfarm.timestatistics.R;


public class ToastUtil {

//    private static Toast mToast;
    /**
     * 弹出Toast，保持单例，   潜在的问题：android有版本禁用通知权限之后，Toast无法弹出，这里统一处理。
     * 暂时没考虑好全新解决方案，待定，考虑SnakeBar处理。
     * @param ctx
     * @param message
     */

    public static void show(Context ctx, String message) {
        CustomToast.INSTANCE.cancelToast();
        CustomToast.INSTANCE.showToast(ctx,message);


    }

    public void cancelToast() {
        CustomToast.INSTANCE.cancelToast();//销毁页面时，取消掉toast
//        if (mToast != null) {
//            mToast.cancel();
//            mToast = null;
//        }
    }

    public enum  CustomToast {
        INSTANCE;// 实现单例
        private Toast mToast;
        private TextView mTvToast;
        public void showToast(Context ctx, String content) {
            if (mToast == null) {
                mToast = new Toast(ctx);
                mToast.setGravity(Gravity.CENTER, 0, 0);//设置toast显示的位置，这是居中
                mToast.setDuration(Toast.LENGTH_SHORT);//设置toast显示的时长
                View _root = LayoutInflater.from(ctx).inflate(R.layout.toast_custom_common, null);//自定义样式，自定义布局文件
                mTvToast = _root.findViewById(R.id.tvCustomToast);
                mToast.setView(_root);//设置自定义的view
            }
            mTvToast.setText(content);//设置文本
            mToast.show();//展示toast
        }
        public void showToast(Context ctx, int stringId) {
            showToast(ctx, ctx.getString(stringId));
        }
        public void cancelToast() {
            if (mToast != null) {
                mToast.cancel();
                mToast = null;
                mTvToast = null;
            }
        }
    }


}
